var DataType = {
    parse: function(v) {
        if (typeof v === 'string') {
            v = gg.module('datatype.String').trim(v).toLowerCase();
            if (v === '' || v === 'false' || v === 'no') {
                return false;
            } else {
                return true;
            }
        }
        else {
            return Boolean(v);
        }
    },
    and: function(a, b) {
        b = this.parse(b);
        return a && b;
    },
    or: function(a, b) {
        b = this.parse(b);
        return a || b;
    },
    not: function(a) {
        return !a;
    },
    xor: function(a, b) {
        b = this.parse(b);
        return (a == b) ? false : true;
    }
};

module.exports = DataType;